#pragma once

#include "init.h"
#include "draw.h"
#include "util.h"

void initStage(void);

static void initPlayer();

static void logic(void);

static void fireBullet(void);

static void doBullets(void);

static void draw(void);

static void drawPlayer(void);

static void drawBullets(void);

void capFrameRate(long *then, float *remainder);

static void doPlayer(void);

static void doFighters(void);

static void spawnEnemies(void);

static void drawFighters(void);

static int bulletHitFighter(struct Entity *b);

static void resetStage(void);

static void doEnemies(void);

static void fireAlienBullet(struct Entity *e);

static void clipPlayer(void);

static void initStarfield(void);

static void doBackground(void);

static void doStarfield(void);

static void doExplosions(void);

static void doDebris(void);

static void addExplosions(int x, int y, int num);

static void addDebris(struct Entity *e);

static void drawBackground(void);

static void drawStarfield(void);

static void drawDebris(void);

static void drawExplosions(void);